Automatic System for Production-Grade Stereo Image Enhancements

ABSTRACT

Systems and methods for automatically optimizing pairs of stereo images are presented. Pixels in an image pair are reprojected from their raw format to a common pixel-space coordinate system. The image pair is masked to remove pixels that do not appear in both images. Each image undergoes a local enhancement process. The local enhancements are processed into a global enhancement for each image of the image pair. A factor is calculated to balance the left and right images with each other. A brightness factor for the image pair is calculated. The enhancements, including the balancing and brightness factors, are then mapped to their respective images.

STATEMENT OF GOVERNMENT INTEREST

The invention described herein was made by employees of the UnitedStates Government and may be manufactured and used by or for theGovernment for Government purposes without payment of any royalties.

BACKGROUND

Stereo vision systems are widely used to give the appearance of 3Dimages using a pair of 2D images. However, in order to provide anoptimal 3D image, the pair of 2D images must be adjusted to account fordifferences between the two images of the pair. The adjustment processcan be very cumbersome, particularly if multiple images are being used,such as in 3D stereo video.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements or delineate the scope of the specification. Itssole purpose is to present a selection of concepts disclosed herein in asimplified form as a prelude to the more detailed description that ispresented later.

As used herein, the term “includes” and its variants are to be read asopen terms that mean “includes, but is not limited to.” The term “basedon” is to be read as “based at least in part on.” The term “oneembodiment” and “an embodiment” are to be read as “at least oneembodiment.” The term “another embodiment” is to be read as “at leastone other embodiment.” Other definitions, explicit and implicit, may beincluded below.

The present application is directed to systems and methods forautomatically optimizing pairs of stereo images. Pixels in an image pairare reprojected from their raw format to a common pixel-space coordinatesystem. The image pair is masked to remove pixels that do not appear inboth images. Each image undergoes a local enhancement process. The localenhancements are processed into a global enhancement for each image ofthe image pair. A factor is calculated to balance the left and rightimages with each other. A brightness factor for the image pair iscalculated. The enhancements, including the balancing and brightnessfactors, are then mapped to their respective images.

The systems and methods disclosed in the present application can be usedto automate the process of enhancing stereo image pairs and/or, enablereal-time or near-real-time viewing of stereo images and/or video.

In at least one embodiment, a left image and a right image of a stereoimage pair are captured at different times.

In at least one embodiment, a left image and a right image of a stereoimage pair are captured using image capture devices with differentcharacteristics.

In at least one embodiment, a plurality of images comprising a stereoimage pair are at least one of color, multispectral, hyperspectral,thermal, infrared, or overhead persistent infrared (OPIR) images.

In at least one embodiment, a plurality of stereo image pairs arereceived, processed, and displayed in real-time or near-real-time.

Many of the attendant features will be more readily appreciated byreference to the following detailed description and the accompanyingdrawings.

DESCRIPTION OF THE DRAWINGS

The present description will be better understood from the followingdetailed description read in light of the accompanying drawings,wherein:

FIG. 1 is a flow chart of a method of calculating and applying imageenhancements;

FIG. 2 is an illustration of masking applied to a reprojected imagepair;

FIG. 3 is an illustration of an exemplary computing-based device.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appendeddrawings is intended as a description of the present examples and is notintended to represent the only forms in which the present example may beconstructed or utilized. The description sets forth the functions of theexample and the sequence of steps for constructing and operating theexample. However, the same or equivalent functions and sequences may beaccomplished by different examples. Further, various illustrated ordescribed portions of processes may be re-ordered or executed inparallel in various different embodiments.

Although a particular example may be described and illustrated herein ascomprising a Digital Point Positioning Database (DPPDB), the examplesare provided as an example and not a limitation. As those skilled in theart will appreciate, any of the examples may be implemented with orwithout a DPPDB or any other type or format of stereo image pairs.

As used herein, the term “stereo image pair” refers to a plurality ofimages in which at least some portion of two or more images contain thesame subject matter (terrain, person, or other object). All or some ofthe plurality of images may have been captured simultaneously or atdifferent points in time. In addition, all or some of the plurality ofimages may have been captured by the same or different image capturedevices.

As used herein, the terms “left image” and “right image” refer to one orthe other of the two images that may comprise the enhanced stereo imageand may refer to the images before or after enhancements are applied. Inembodiments where all images are not enhanced, as discussed furtherbelow, the terms may refer to images that will not have enhancementsapplied.

Further, although some of the examples provided may not contain featuresdescribed with regard to another example, such a description is providedas an example and not a limitation. As those skilled in the art willappreciate, any of the features associated with an example may beincorporated into any other example provided without departing from thescope of the disclosure.

At least one embodiment of the present application is directed tosystems and methods for enhancing one or more stereo image pairs.

FIG. 1 is a flow chart of a method of calculating and applying imageenhancements. Preprocessing 100 comprises receiving a stereo image pairfrom an image source 105, reprojecting 110 the pixels of the stereoimage pair to a common pixel-space coordinate system, and masking 115the stereo image pair to remove pixels that do not appear in bothimages. The enhancement process 120 comprises calculating 125 a set oflocal enhancements and then processing 130 the set of local enhancementsinto a global enhancement for each image of the stereo image pair.Stereo matching 135 comprises balancing a left image and a right imageof the stereo image pair for visual consistency through histogrammatching 140 and calculating 145 a brightness adjustment for the stereoimage pair. Final enhancement 150 comprises applying enhancement valuesto the appropriate pixels of the stereo image pair. The enhanced stereoimage pair may optionally be displayed 155 to a user. In addition, oralternatively, the enhancement values and/or the enhanced stereo imagepair may be stored.

The image source 105 may be a database storing images or one or moreimage capture devices providing image pairs in real-time ornear-real-time. In some embodiments, the image source 105 may comprisetwo physically separate image capture devices capturing images of thesame subject matter and transmitting those images to central locationfor enhancement.

In some embodiments, a stereo image pair may comprise a plurality ofimages captured at different times and/or captured by image capturedevices with different characteristics. By way of example only andwithout limiting the scope of the invention, a stereo image pair maycomprise a plurality of satellite images of a geographic area that arecaptured by the same satellite on different passes over the geographicarea.

In embodiments where a stereo image pair comprises images captured atdifferent times, change detection techniques, as known in the art, maybe used to identify portions of an image that have changedsubstantially. That is, changes that are beyond those that would beexpected from a change in camera angle, illumination, or other similarfactors that would affect a large number of pixels. In theseembodiments, pixels of a left image and a right image of the stereoimage pair that correspond to the portions that have changedsubstantially may be masked, as discussed below, or they may be excludedfrom the enhancement process and displayed 155 to a user as un-enhancedpixels.

Those skilled in the art will appreciate that the steps of FIG. 1 may beexecuted by systems that are co-located with the image source 105, bycloud-based systems, by systems that are geographically separate fromthe image source 105, or by any combination of the foregoing.

Reprojection 110 comprises converting the pixel locations of a left anda right image of a stereo image pair from two separate coordinatesystems local to each of the two images into a single coordinate systemthat is common to both of the two images. Some stereo image pairs mayhave associated metadata that defines the physical relationship betweenthe two images. That physical relationship may be used to locate pixelsfrom both images in a common coordinate system using techniques known inthe art. Some images may also have associated metadata that defines arelationship between pixel locations and some universal coordinatesystem, such as latitude, longitude, and elevation. Other computervisions techniques may be used to locate pixels in a common coordinatesystem or to compensate for missing metadata, as known in the art.

In addition to the methods discussed above, in the case of overheadimagery, reprojection may be done using rational polynomial coefficients(RPCs) and elevation data for the geographic location of the imagery.Used together, RPC data and elevation data allow an image pair to beprojected in a common coordinate system onto a topographic surface ofthe earth, and adjusted accordingly in the pixel-space of the left andright stereo images. RPCs are commonly used in the art to describe therelationship between object-space coordinates (latitude, longitude, andheight) and image-space coordinates (X and Y pixels). RPCs can becalculated in a common 78-parameter format for standardized use. Theseparameters (in vectors c, d, e, and f below) are calculated using anoptimal fitting to a physical sensor model of the associated imagecapture device, and can be represented by:

-   -   c=[c₁ c₂ . . . c₂₀]^(T)    -   d=[1 d₂ . . . d₂₀]^(T)    -   e=[e₁ e₂ . . . e₂₀]^(T)    -   f=[1 f₂ . . . f₂₀]^(T)        after which the image pixel coordinates can be reprojected by        the equations:

$X = \frac{e^{T}u}{f^{T}u}$ $Y = \frac{c^{T}u}{d^{T}u}$

where X and Y are the resulting image-space coordinates, andu=[1 L P H LP LH PH L² P² H² PLH L³ LP² LH² L²P P³ PH² L²H P²H H³]^(T)where P, L, and H are the normalized object-space latitude, longitude,and height respectively.

In some embodiments, reprojection 110 is performed using orthorectifiedimages. Orthorectification, as is known in the art, may be performedbefore or after an image is received from an image source 105.

FIG. 2 is an illustration of masking 115 applied to a reprojected imagepair 200. Once a left image 210 and a right image 220 are in the samecoordinate system, pixels exclusive to either the left image 210 or theright image 220 are eliminated, so that only pixels common to both theleft and right images 230 remain. This method of masking accounts fordifferences in geometries of the left image 210 and right image 220 thatmay result from how the images were captured or the devices used tocapture them.

Masking can also be used to mitigate negative effects of attempting toenhance images containing highly reflective surfaces 240 such as water.The difference in angle between left and right images can create widevariation in optical properties due to glare from the sun and otherlight sources reflected from highly reflective surfaces. Highlyreflective surfaces 240 can be identified in the image pair 200 manuallyor by referencing a database or other information source that associatesone or more highly reflective surfaces 240 with the coordinate system ofthe reprojected image pair 200.

In one embodiment, a reprojected image pair may include portions of abody of water. If the image pair is reprojected to latitude andlongitude and the coastline of the body of water is mapped in latitudeand longitude, the pixels comprising the body of water can be removedfrom the image pair by removing the pixels that fall within the boundaryof the coastline.

Although FIG. 1 shows the enhancement process 120 after masking 115, itshould be noted that portions of the enhancement process may begin priorto completion of the full masking process. That is, some steps of theenhancement process may begin before all steps of the masking processare complete and/or the enhancement process may be conducted forportions of an image pair while other portions of the image pair areundergoing the masking process.

Calculating 125 the local enhancements comprises performing contrastlimited adaptive histogram equalization (CLAHE) on a left and rightimage separately, as is known in the art. CLAHE is an improvement overtraditional histogram equalization, which is a popular image enhancementtechnique. In histogram equalization, pixel values are stretched acrossthe entire dynamic range of an image, as evenly as possible. For an8-bit image, for example, there are 2⁸=256 possible brightness valuesthat a pixel can be assigned, ranging from 0 (black) to 255 (white).Histogram equalization maps input image pixels to output pixelsaccording to the conditions that 1: the output pixels are spread acrossall 256 brightness values as evenly as possible, and 2: that if any twopixels in the input image have the same brightness value, they will havethe same output brightness value as well.

Histogram equalization can be an effective enhancement technique, but ithas a significant drawback that, since the image is stretched across theentire dynamic range, the contrast of the resulting image can be toohigh for comfortable viewing and interpretation. CLAHE addresses thisissue by dividing an input image into a number of smaller subregions.Histogram equalization is then performed on each subregion separately,while enforcing a threshold on the maximum contrast that each subregionof the output image can have. This contrast limitation is achievedthrough an adjustable parameter known as a clip limit, which sets athreshold on how large any peaks in the histogram can be.

In some embodiments with a normalized histogram a clip limit may be setto 0.01, where bin values range from 0 to 1.

In alternative embodiments, a clip limit may be adaptively adjusted, asis known in the art.

In alternative embodiments, contrast may be limited by normalizing thevariance of an image according to the equation:

$O \propto {{\sqrt[2]{D}*\frac{\left( {I - {\mu (I)}} \right)}{\sigma (I)}} + {\mu (I)}}$

where O is the resulting variance-normalized image, I is the inputimage, D is the bit depth of the imagery, and μ and σ are the mean andstandard deviation, respectively. In some embodiments, the standarddeviation of the image may be adjusted proportionally to the square rootof the bit depth.

Processing 130 the set of local enhancements into a global enhancementfor each image of a stereo image pair comprises creating a best-fitsolution based on individual enhancements of each subregion. Because thelocal enhancement is calculated for each subregion independently, twopixels with the same input pixel value but in different subregions mayend up with different pixel values after CLAHE is performed. That is,for each input image pixel value, the resulting CLAHE enhanced pixelsmay take on many different values due to input pixels being in differentsubregions. To resolve this issue, isotonic regression is performed tocalculate a best fit, monotonically nondecreasing function relating allpixels with the same value in an input image to a single enhanced value.Isotonic regression finds an optimal global solution across allsubregions, while preserving the property that if one pixel is notdarker than another pixel in the input image, that relationship willstill hold in the enhanced image.

In some embodiments, smoothing methods may be applied to an isotonicregression to reduce instances where several pixel values in an inputimage are mapped to the same enhanced pixel value.

Histogram matching 140 comprises balancing the left and right images ina stereo image pair using cumulative mass functions (CMFs) of the leftand right images. The CMF is similar to the histogram, except each binrepresents the sum of the number of pixels at or below the bin value.The pixel bin value is normalized based on the total number of pixels inthe image, so that the last pixel bin value (255 for an 8 bit image)will have a cumulative mass of 1, since the sum of the number of pixelsat or below the last pixel bin value is by definition equal to the totalnumber of pixels in the image. A target CMF is determined by averagingCMFs of the globally enhanced left image and globally enhanced rightimage. CMFs of the globally enhanced images are then matched to thetarget CMF by matching the value of a CMF of a globally enhanced imageat each particular bin level to the value of the target CMF at the samebin level while maintaining the requirement that all input pixels withthe same brightness value be mapped to the same output pixel brightnessvalue.

In some embodiments, the enhancement process 120 and histogram matching140 may be performed separately for each of a plurality of bands of astereo image pair. By way of example only and without limiting the scopeof the invention, a color image may be separated into three bands, oneeach for the red, green, and blue bands of the color image. Similarly,multispectral and hyperspectral images may be split into multiple bandsbased on wavelength or wavelength range. In these embodiments, theenhanced image displayed to a user may be an enhancement of one or morebands.

In some embodiments, one or more of the bands comprising an image may bemodified by incorporating information from one or more other bands withsimilar wavelengths. In these embodiments, the incorporation may beperformed using a Gaussian mixture model or using any other appropriatemethod known in the art.

Calculating 145 the brightness adjustment comprises performing gammaadjustment in order to set the median brightness of an image. Toaccomplish this, the invention first calculates a gamma value accordingto the equation:

$\gamma = \frac{\log (B)}{\log \left( \frac{m}{D} \right)}$

where B is a user-selected constant, D is the bit depth of the image,and m is the median target intensity value, i.e. it is the pixel valuecorresponding to the 50^(th) percentile of the target cumulative massfunction. In some embodiments, B may range from 0.2 to 0.25, althoughalternative embodiments may use values from 0.1 to 0.5.

Pixel values of the left and right images are then adjusted by the sameequation:

$O = {D*\left( \frac{I}{D} \right)^{\gamma}}$

where O is the resulting output image, I is the input image, D is thebit depth, and γ is the parameter calculated in the previous equation.

In some embodiments, a brightness term may be added to the image values,in addition to or instead of the gamma adjustment, to achieve thedesired median target intensity value. The brightness term is calculatedaccording to the equation:

O=I+δ

where δ is calculated from the equation:

δ=B*D−m

where B is the same user-selected constant, D is again the bit depth ofthe image, and m is the median target intensity value. The resultingvalues in the output image are clamped such that all values remainwithin the range of allowable values according to the bit depth of theimagery, that is in the range [0, D−1] where D is the bit depth.

Final enhancement 150 comprises applying enhancement values toappropriate pixels in the left and right images of a stereo image pair.Application can be performed by mapping input image pixels to enhancedvalues, or using any other appropriate technique known in the art.

In some embodiments, a stereo image pair is one of a series of stereoimage pairs, as in a video. In these embodiments, in order to reduceprocessing time, the steps above may be applied to some or all of thepixels in a given stereo image pair. Change detection techniques, asknown in the art, may be used to identify pixels that have changed froma prior stereo image pair. The enhancement process 120, stereo matching135 and final enhancement 150 may then be performed on the changedpixels and/or the regions surrounding the changed pixels. In addition,or in the alternative, the enhancement process 120, stereo matching 135and final enhancement 150 may be performed on a subset of the stereoimage pairs in the series. The subset may comprise every nth image inthe series, only those stereo image pairs where the number of changedpixels exceeds some threshold value, or any combination of these or anyother appropriate techniques known in the art.

In embodiments where an enhanced stereo image pair is displayed 155 to auser, the display may be any of: an active stereo 3D display; a passive3D stereo display; a projector-based system; a mirror-based system; anautostereoscopic display; an augmented reality display, includingaugmented reality glasses or other heads-up style display; any otherappropriate type of display known in the art; or any combination of theforegoing.

The embodiments described above may be implemented using any form ofappropriate computing-based device.

FIG. 3 illustrates various components of an exemplary computing-baseddevice 300 which may be implemented as any form of a computing and/orelectronic device, and in which embodiments of a controller may beimplemented.

Computing-based device 300 comprises one or more processors 310 whichmay be microprocessors, controllers or any other suitable type ofprocessors for processing computer executable instructions to controlthe operation of the device. In some examples, for example where asystem on a chip architecture is used, the processors 310 may includeone or more fixed function blocks (also referred to as accelerators)which implement a part of controlling one or more embodiments discussedabove. Firmware 320 or an operating system or any other suitableplatform software may be provided at the computing-based device 300.Data store 330 is available to store sensor data, parameters, loggingregimes, and other data.

The computer executable instructions may be provided using anycomputer-readable media that is accessible by computing based device300. Computer-readable media may include, for example, computer storagemedia such as memory 340 and communications media. Computer storagemedia, such as memory 340, includes volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disks (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other non-transmissionmedium that can be used to store information for access by a computingdevice. In contrast, communication media may embody computer readableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave, or other transportmechanism. As defined herein, computer storage media does not includecommunication media. Therefore, a computer storage medium should not beinterpreted to be a propagating signal per se. Propagated signals may bepresent in a computer storage media, but signals per se, propagated orotherwise, are not examples of computer storage media. Although thecomputer storage media (memory 340) is shown within the computing-baseddevice 300 it will be appreciated that the storage may be distributed orlocated remotely and accessed via a network 350 or other communicationlink (e.g. using communication interface 360).

The computing-based device 300 also comprises an input/output controller370 arranged to output display information to a display device 380 whichmay be separate from or integral to the computing-based device 300. Thedisplay information may provide a graphical user interface. Theinput/output controller 370 is also arranged to receive and processinput from one or more devices, such as a user input device 390 (e.g. amouse, keyboard, camera, microphone, or other sensor). In some examplesthe user input device 390 may detect voice input, user gestures or otheruser actions and may provide a natural user interface. This user inputmay be used to change parameter settings, view logged data, accesscontrol data from the device such as battery status and for othercontrol of the device. In an embodiment the display device 380 may alsoact as the user input device 390 if it is a touch sensitive displaydevice. The input/output controller 370 may also output data to devicesother than the display device, e.g. a locally connected ornetwork-accessible printing device. The input/output controller 370 mayalso connect to various sensors discussed above, and may connect tothese sensors directly or through the network 350.

The input/output controller 370, display device 380 and optionally theuser input device 390 may comprise NUI technology which enables a userto interact with the computing-based device in a natural manner, freefrom artificial constraints imposed by input devices such as mice,keyboards, remote controls and the like. Examples of NUI technology thatmay be provided include but are not limited to those relying on voiceand/or speech recognition, touch and/or stylus recognition (touchsensitive displays), gesture recognition both on screen and adjacent tothe screen, air gestures, head and eye tracking, voice and speech,vision, touch, gestures, and machine intelligence. Other examples of NUItechnology that may be used include intention and goal understandingsystems, motion gesture detection systems using depth cameras (such asstereoscopic camera systems, infrared camera systems, RGB camera systemsand combinations of these), motion gesture detection usingaccelerometers/gyroscopes, facial recognition, 3D displays, head, eyeand gaze tracking, immersive augmented reality and virtual realitysystems and technologies for sensing brain activity using electric fieldsensing electrodes (EEG and related methods).

The term ‘computer’ or ‘computing-based device’ is used herein to referto any device with processing capability such that it can executeinstructions. Those skilled in the art will realize that such processingcapabilities are incorporated into many different devices and thereforethe terms ‘computer’ and ‘computing-based device’ each include PCs,servers, mobile telephones (including smart phones), tablet computers,set-top boxes, media players, games consoles, personal digitalassistants and many other devices.

This acknowledges that software can be a valuable, separately tradablecommodity. It is intended to encompass software, which runs on orcontrols “dumb” or standard hardware, to carry out the desiredfunctions. It is also intended to encompass software which “describes”or defines the configuration of hardware, such as HDL (hardwaredescription language) software, as is used for designing silicon chips,or for configuring universal programmable chips, to carry out desiredfunctions.

Those skilled in the art will realize that storage devices utilized tostore program instructions can be distributed across a network. Forexample, a remote computer may store an example of the process describedas software. A local or terminal computer may access the remote computerand download a part or all of the software to run the program.Alternatively, the local computer may download pieces of the software asneeded, or execute some software instructions at the local terminal andsome at the remote computer (or computer network). Those skilled in theart will also realize that by utilizing conventional techniques known tothose skilled in the art that all, or a portion of the softwareinstructions may be carried out by a dedicated circuit, such as a DSP,programmable logic array, or the like.

Any range or device value given herein may be extended or alteredwithout losing the effect sought, as will be apparent to the skilledperson.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

It will be understood that the benefits and advantages described abovemay relate to one embodiment or may relate to several embodiments. Theembodiments are not limited to those that solve any or all of the statedproblems or those that have any or all of the stated benefits andadvantages. It will further be understood that reference to ‘an’ itemrefers to one or more of those items.

The steps of the methods described herein may be carried out in anysuitable order, or simultaneously where appropriate. Additionally,individual blocks may be deleted from any of the methods withoutdeparting from the spirit and scope of the subject matter describedherein. Aspects of any of the examples described above may be combinedwith aspects of any of the other examples described to form furtherexamples without losing the effect sought.

The term ‘comprising’ is used herein to mean including the method blocksor elements identified, but that such blocks or elements do not comprisean exclusive list and a method or apparatus may contain additionalblocks or elements.

It will be understood that the above description is given by way ofexample only and that various modifications may be made by those skilledin the art. The above specification, examples and data provide acomplete description of the structure and use of exemplary embodiments.Although various embodiments have been described above with a certaindegree of particularity, or with reference to one or more individualembodiments, those skilled in the art could make numerous alterations tothe disclosed embodiments and/or combine any number of the disclosedembodiments without departing from the spirit or scope of thisspecification.

1. A method for enhancing stereo image pairs comprising: reprojecting a pair of images into a common coordinate system; masking portions of either image that are not common to both images; calculating a plurality of local enhancement values for each image of the pair; converting the local enhancement values into global enhancement values for each image of the pair; balancing the two images of the pair; calculating at least one brightness adjustment for the image pair; and mapping the enhancement values to the images of the pair.
 2. The method of claim 1, wherein the two images of the pair are captured at different times.
 3. The method of claim 1, wherein the reprojection comprises using rational polynomial coefficients and elevation data to project the image pair in a common coordinate system onto a topographic surface of the earth.
 4. The method of claim 1, wherein reprojection is performed using orthorectified images.
 5. The method of claim 1, wherein calculating the plurality of local enhancement values comprises limiting contrast by normalizing the variance of each image.
 6. The method of claim 1, wherein balancing the two images comprises: calculating a cumulative mass function of a globally enhanced left image of the image pair; calculating a cumulative mass function of a globally enhanced right image of the image pair; calculating a target cumulative mass function, wherein the target cumulative mass function is the average of the cumulative mass functions of the globally enhanced left image and the globally enhanced right image; matching the values of the cumulative mass functions of the globally enhanced left image and globally enhanced right image at a plurality of bin levels to values of the target cumulative mass function at the plurality of bin levels.
 7. The method of claim 1, wherein calculating at least one brightness adjustment for the image pair comprises calculating a gamma value, the gamma value being a function of a bit depth of an image of the image pair, a median target brightness intensity value, and a constant.
 8. The method of claim 1, wherein calculating at least one brightness adjustment for the image pair comprises: calculating a brightness term, the brightness term being a function of a bit depth of an image of the image pair, a median target brightness intensity value, and a constant; and clamping brightness values such that, after adjustment, all brightness values are within a range of allowable brightness values.
 9. A method for enhancing a series of stereo image pairs comprising: reprojecting a plurality of pairs of images into a common coordinate system; and for each of the plurality of pairs of images; masking portions of either image that are not common to both images; calculating a plurality of local enhancement values for each image of the pair; converting the local enhancement values into global enhancement values for each image of the pair; balancing the two images of the pair; calculating at least one brightness adjustment for the image pair; and mapping the enhancement values to the images of the pair.
 10. The method of claim 9, wherein the reprojection comprises using rational polynomial coefficients and elevation data to project the image pair in a common coordinate system onto a topographic surface of the earth.
 11. The method of claim 9, wherein reprojection is performed using orthorectified images.
 12. The method of claim 9, wherein calculating the plurality of local enhancement values comprises limiting contrast by normalizing the variance of each image.
 13. The method of claim 9, wherein balancing the two images comprises: calculating a cumulative mass function of a globally enhanced left image of the image pair; calculating a cumulative mass function of a globally enhanced right image of the image pair; calculating a target cumulative mass function, wherein the target cumulative mass function is the average of the cumulative mass functions of the globally enhanced left image and the globally enhanced right image; matching the values of the cumulative mass functions of the globally enhanced left image and globally enhanced right image at a plurality of bin levels to values of the target cumulative mass function at the plurality of bin levels.
 14. The method of claim 9, wherein calculating at least one brightness adjustment for the image pair comprises calculating a gamma value, the gamma value being a function of a bit depth of an image of the image pair, a median target brightness intensity value, and a constant.
 15. The method of claim 9, wherein calculating at least one brightness adjustment for the image pair comprises: calculating a brightness term, the brightness term being a function of a bit depth of an image of the image pair, a median target brightness intensity value, and a constant; and clamping brightness values such that, after adjustment, all brightness values are within a range of allowable brightness values.
 16. A method for enhancing a multispectral stereo image pair comprising: reprojecting each image of the pair of images into a common coordinate system; masking portions of either image that are not common to both images; dividing the masked image pair into a plurality of sub-image pairs, the division based at least in part on wavelength range; and for each sub-image pair: calculating a plurality of local enhancement values for each sub-image of the pair; converting the local enhancement values into global enhancement values for each sub-image of the pair; balancing the two sub-images of the pair; calculating at least one brightness adjustment for the sub-image pair; and mapping the enhancement values to the sub-images of the pair.
 17. The method of claim 16, wherein the reprojection comprises using rational polynomial coefficients and elevation data to project the image pair in a common coordinate system onto a topographic surface of the earth.
 18. The method of claim 16, wherein calculating the plurality of local enhancement values comprises limiting contrast by normalizing the variance of each sub-image.
 19. The method of claim 16, wherein balancing the two sub-images comprises: calculating a cumulative mass function of a globally enhanced left sub-image of the sub-image pair; calculating a cumulative mass function of a globally enhanced right sub-image of the sub-image pair; calculating a target cumulative mass function, wherein the target cumulative mass function is the average of the cumulative mass functions of the globally enhanced left sub-image and the globally enhanced right sub-image; matching the values of the cumulative mass functions of the globally enhanced left sub-image and globally enhanced right sub-image at a plurality of bin levels to values of the target cumulative mass function at the plurality of bin levels.
 20. The method of claim 16, wherein calculating at least one brightness adjustment for the sub-image pair comprises calculating a gamma value, the gamma value being a function of a bit depth of a sub-image of the sub-image pair, a median target brightness intensity value, and a constant. 